Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

237
Vistas
Haz una consulta con el filtro "dónde" en Firestore

Quiero filtrar y obtener elementos específicos según el ID de categoría, donde uso el método "dónde" y el operador "==".

Tengo esta colección de Firestore llamada "tarea", donde los documentos se dividen por ID de usuario y cada documento para un usuario contiene una variedad de tareas diferentes. La estructura se ve aquí: Ingrese la descripción de la imagen aquí

Así es como agrego las tareas de matriz para un usuario en la colección de tareas:

 const addToFirebase = async() => { if(dataFetch) { await setDoc(doc(db, "task", `${firebase.auth().currentUser.uid}`), { tasks: tasks }, {merge: true}); } }

Y así es como he intentado hacer mi consulta que no funciona:

 const getFilteredTasks = async() => { const collectionRef = collection(db, "task", `${firebase.auth().currentUser.uid}`, "tasks"); const q = query(collectionRef, where("categoryID", "==", item.id)); console.log('outside snapshot') console.log(item.id) const querySnapshot = await getDocs(q); querySnapshot.forEach((doc) => { console.log(doc.data()); console.log('inside snapshot') }); }

Cuando se llama a la función anterior, registra la "instantánea externa" y el item.id correcto, que es el ID de categoría para cada tarea, pero no registra el doc.data() ni la "instantánea interna".

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Configuró su consulta como si cada tarea fuera un documento separado en una colección, pero según la captura de pantalla y la forma en que configura los datos, solo tiene un documento por usuario. Ese documento contiene todas las tareas individuales. Entonces, para acceder a eso, obtendría el documento y usaría el código del lado del cliente para usar las partes de los datos que le interesan:

 const getFilteredTasks = async () => { const docRef = doc(db, 'task', `${firebase.auth().currentUser.uid}`); const snapshot = await getDoc(docRef); const data = snapshot.data(); if (!data) { return []; } else { return data.tasks.filter(task => task.categoryID === item.id); } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda